/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Repositories;
import Interface.IUsuario;
import Models.JsonReposta;
import Util.Conexao;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.util.JSON;


/**
 *
 * @author Yanne
 */
public class UsuarioRepository implements IUsuario{
    
    public UsuarioRepository()
    {
        
    }
    
    //Metodo utilizado para autenticar o usuario
    public JsonReposta Autenticar(String json)
    {
        JsonReposta jsonReposta = new JsonReposta();
        try
        {
            //Abre a conexão com o mongo
            Conexao.AbrirConexao();
            
            //Recupera a coleção de usuarios
            DBCollection usuarios = Conexao.db.getCollection("USUARIO");
            
            //Transforma num objeto do mongo o Json que veio do postData
            BasicDBObject usuario = (BasicDBObject) JSON.parse(json);
            
            usuarios.save(usuario); 
            
            //Busca o usuario com as informações de login e senha.
            DBCursor colecao = usuarios.find(usuario);
            while(colecao.hasNext())
            {
                //variavel que recebe false pq nao deu nenhum erro.
                jsonReposta.erro = false;
                return jsonReposta;    
            }
                        
            //variavel que recebe true pq nao tem nenhum usuario com esses atributos.
            jsonReposta.erro = true;
            jsonReposta.mensagem = "Usuario ou senha inválido!";
            return jsonReposta;    
        }
        catch (Exception ex)
        {
            jsonReposta.erro = true;
            jsonReposta.mensagem = ex.getMessage();
            return jsonReposta;
        }
    }
    
    //Metodo Utilizado para BuscarTodos os Usuarios
    public String ListarTodos()
    {
        
        try
        {
            //Abre a conexão com o mongo
            Conexao.AbrirConexao();
            
            //Recupera a coleção de usuarios
            DBCollection usuarioColecao = Conexao.db.getCollection("USUARIO");
            
            
            String usuarios = usuarioColecao.find().getQuery().toString();
            
            return usuarios;
            
        }
        catch (Exception ex)
        {
            return "";
        }
    }

    
}
